<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui"
                template="../templates/principal.xhtml">

    <ui:define name="content" id="content">
        <h:form id="frmDepartamento">
            <p:panel id="panel" header="Bem Vindo ao Cadastro de Departamento">
                <p:growl id="messages" life="5000" />
                
                <p:dataTable id="tabDepartamento" widgetVar="wtabDepartamento" var="departamento" value="#{departamentoBean.lazyModel}" filterEvent="enter" 
                             paginator="true" rows="12" lazy="true" emptyMessage="Nenhum Registro Retornado ..." paginatorPosition="top">

                    <p:column headerText="Descrição" sortBy="#{departamento.dscDepartamento}" filterBy="#{departamento.dscDepartamento}">
                        <div style="text-align: left; ">
                            <h:outputText value="#{departamento.dscDepartamento}" />
                        </div>
                    </p:column>

                    <p:column style="width: 100px;">
                        <h:panelGrid columns="4" styleClass="actions" cellpadding="0">
                            <p:commandButton id="selectButtonDepartamento" update=":frmDepartamento:panel :frmDepartamento:messages" 
                                             icon="ui-icon-search" title="Visualizar // Alterar Departamento" oncomplete="PF('departamentoDialog').show()">
                                <f:setPropertyActionListener value="#{departamento}" target="#{departamentoBean.selectedDepartamento}" />
                            </p:commandButton>

                            <p:commandButton id="excluirButtonDepartamento" update=":frmDepartamento:panel :frmDepartamento:messages" 
                                             icon="ui-icon-trash" title="Excluir Departamento" oncomplete="PF('confirmation').show()">
                                <f:setPropertyActionListener value="#{departamento}" target="#{departamentoBean.selectedDepartamento}" />
                            </p:commandButton>
                        </h:panelGrid>
                    </p:column>
                    
                    <f:facet name="footer">
                        <div style="text-align: left;">
                            <p:commandButton id="incluirButtonDepartamento" actionListener="#{departamentoBean.preparaInserir}" 
                                             update=":frmDepartamento:panel :frmDepartamento:messages" value="Novo Departamento"
                                             icon="ui-icon-pencil" title="Cadastrar Novo Departamento" oncomplete="PF('departamentoDialog').show()" />
                        </div>
                    </f:facet>
                </p:dataTable>

                <p:dialog id="dialog" header="Detalhes Departamento" widgetVar="departamentoDialog" resizable="true"
                          width="800" showEffect="explode" hideEffect="explode" dynamic="true">
                    <p:panel id="panelDetalhe" style="text-align: left; ">
                        <p:panelGrid id="display" columns="2" style="margin-bottom:50px">
                            <h:outputText value="Descrição:" />
                            <p:inputText id="Descricao" value="#{departamentoBean.selectedDepartamento.dscDepartamento}" style="width:600px; font-weight:bold; " />
                        </p:panelGrid>
                        <br />
                        <p:commandButton id="btInserir" value="Inserir" update=":frmDepartamento:panel :frmDepartamento:messages" process="@all"
                                         actionListener="#{departamentoBean.inserir}" oncomplete="PF('departamentoDialog').hide()" />
                        <p:commandButton id="btAlterar" value="Alterar" update=":frmDepartamento:panel :frmDepartamento:messages" process="@all"
                                         actionListener="#{departamentoBean.alterar}" oncomplete="PF('departamentoDialog').hide()" />
                    </p:panel>
                </p:dialog>

                <p:dialog id="dialogConfirmation" header="Confirma a Exclusão desse Departamento: #{departamentoBean.selectedDepartamento.dscDepartamento}?" widgetVar="confirmation">

                    <p:commandButton value="Sim" update=":frmDepartamento:panel :frmDepartamento:messages" oncomplete="PF('confirmation').hide(), PF('departamentoDialog').hide()"
                                     actionListener="#{departamentoBean.excluir}" process="@all" />
                    <p:commandButton value="Não" onclick="PF('confirmation').hide()" type="button" />

                </p:dialog>
            </p:panel>
        </h:form>
    </ui:define>
</ui:composition>